package arraylist;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * Created by L.jp
 * Description:
 * User: 86189
 * Date: 2022-10-07
 * Time: 13:57
 */
/*
jdk1.7的ArrayList在创建对象时，底层有两个非常重要的属性就是Object类型的elementData数组和int类型的size表示有效数据的个数
初始化时如果是空参数，那么就会调用Arraylist的构造函数，传入容量为10，然后赋值给elementData数组

调用add(),存放数据时size作为下标，size++,当容量不够时，底层调用grow数组进行扩容，按照原来数组容量的1.5倍进行扩容，扩容之后利用Arrays.copyOf
得到一个新的数组，新数组的容量就是1.5倍，然后把原来就数组的指向改成新数组的地址才完成扩容
*
* */
public class Test_JDK7ArrayList {
    public static void main(String[] args) {
        //接口=实现类的方式创建ArrayList ,建议采用这种方式，因为扩展性更强，变换对象时只需要改后面的即可，前面不用变
        Collection col=new ArrayList();
        List list=new ArrayList();
        
        //第二种方式
        ArrayList arrayList=new ArrayList();
        arrayList.add(1);
        arrayList.add("a");
    }
}
